Di Julia, teks ditangani melalui dua entitas arsitektur yang berbeda: yaitu Char 32-bit primitif dan string yang tidak dapat diubah, String yang dienkripsi UTF-8. Berbeda dengan bahasa lain di mana karakter adalah string satu karakter, Julia memperlakukan Char sebagai tipe numerik kelas pertama yang mewakili titik kode Unicode.
1. Hierarki Tipe & Memori
Concrete Char adalah tipe primitif $32$-bit (subjenis dari AbstractChar). Tipe bawaan String (subjenis dari AbstractString) mendukung rentang Unicode penuh. Sementara itu, Char berukuran tetap, sedangkan String berukuran variabel; karakter individu membutuhkan 1 hingga 4 byte, dengan titik transisi ASCII terjadi pada $0x80(128)$.
2. Aritmetika & Perbandingan
Karena Char mewakili titik kode numerik, Anda dapat melakukan aritmetika. Gunakan Int('a') untuk mendapatkan 97 dan Char(97) untuk mendapatkan 'a'. Perbandingan leksikografis didukung: 'X' < 'x' benar karena huruf kapital mendahului huruf kecil dalam Unicode.
| Fitur | Char ('a') | String ("a") |
|---|---|---|
| Tipe | Char | String |
| Ukuran | Tetap $32$-bit | Variabel UTF-8 |
| Dapat Diubah | Tidak Berlaku (Tipe Nilai) | Tidak (Tidak Dapat Diubah) |
Perbandingan bersambung seperti 'A' <= 'X' <= 'Y' mengevaluasi menjadi benar atau salah berdasarkan urutan Unicode.